<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Cinch.WPF</name>
    </assembly>
    <members>
        <member name="M:Cinch.Validator.GetBrokenRules">
            <summary>
            Validates all rules on this domain object, returning a list of the broken rules.
            </summary>
            <returns>A read-only collection of rules that have been broken.</returns>
        </member>
        <member name="M:Cinch.Validator.GetBrokenRules(System.String)">
            <summary>
            Validates all rules on this domain object for a given property, 
            returning a list of the broken rules.
            </summary>
            <param name="property">The name of the property to check for. 
            If null or empty, all rules will be checked.</param>
            <returns>A read-only collection of rules that have been broken.</returns>
        </member>
        <member name="M:Cinch.Validator.AddRule(Cinch.Rule)">
            <summary>
            Adds a new rule to the list of rules
            </summary>
            <param name="newRule">The new rule</param>
        </member>
        <member name="M:Cinch.Validator.CleanString(System.String)">
            <summary>
            Cleans a string by ensuring it isn't null and trimming it.
            </summary>
            <param name="s">The string to clean.</param>
        </member>
        <member name="P:Cinch.Validator.IsValid">
            <summary>
            Gets a value indicating whether or not this domain object is valid. 
            </summary>
        </member>
        <member name="P:Cinch.Validator.Error">
            <summary>
            Gets an error message indicating what is wrong with this domain object. 
            The default is an empty string ("").
            </summary>
        </member>
        <member name="P:Cinch.Validator.Item(System.String)">
            <summary>
            Gets the error message for the property with the given name.
            </summary>
            <param name="propertyName">The name of the property whose error 
            message to get.</param>
            <returns>The error message for the property. 
            The default is an empty string ("").</returns>
        </member>
        <member name="T:Cinch.ICompletionAwareCommand">
            <summary>
            Interface that is used for ICommands that notify when they are
            completed
            </summary>
        </member>
        <member name="P:Cinch.ICompletionAwareCommand.CommandCompleted">
            <summary>
            Notifies that the command has completed
            </summary>
        </member>
        <member name="T:Cinch.SimpleCommand`2">
            <summary>
            Simple delegating command, based largely on DelegateCommand from PRISM/CAL
            </summary>
            <typeparam name="T">The type for the </typeparam>
        </member>
        <member name="M:Cinch.SimpleCommand`2.RaiseCanExecuteChanged">
            <summary>
            Raises the <see cref="E:Cinch.SimpleCommand`2.CanExecuteChanged"/> event.
            </summary>
        </member>
        <member name="E:Cinch.SimpleCommand`2.CanExecuteChanged">
            <summary>
            Occurs when changes occur that affect whether the command should execute.
            </summary>
        </member>
        <member name="T:Cinch.CloseRequestEventArgs">
            <summary>
            This is used to send result parameters to a CloseRequest
            </summary>
        </member>
        <member name="P:Cinch.CloseRequestEventArgs.Result">
            <summary>
             Final result for ShowDialog
            </summary>
        </member>
        <member name="T:Cinch.UICompletedEventArgs">
            <summary>
            This is the EventArgs return value for the IUIVisualizer.Show completed event.
            </summary>
        </member>
        <member name="P:Cinch.UICompletedEventArgs.State">
            <summary>
            Data passed to the Show method.
            </summary>
        </member>
        <member name="P:Cinch.UICompletedEventArgs.Result">
            <summary>
            Final result of the UI dialog
            </summary>
        </member>
        <member name="T:Cinch.WeakEvent`1">
             <summary>
             This class allows the creation of a Weak Event
             </summary>
             <example>
             <![CDATA[
             
                    //DECLARING
                    private readonly WeakEvent<EventHandler<EventArgs>> 
                         dependencyChangedEvent =
                             new WeakEvent<EventHandler<EventArgs>>();
            
                    public event EventHandler<EventArgs> DependencyChanged
                    {
                      add { dependencyChangedEvent.Add(value); }
                      remove { dependencyChangedEvent.Remove(value); }
                    }
            
                    //RAISING
                    dependencyChangedEvent.Raise(this, new EventArgs());
             
             
                    //SUBSCRIBING
                    SourceDependency.DependencyChanged += OnSourceChanged;
                    ...
                    private void OnSourceChanged(object sender, EventArgs e)
                    {
                    
                    }
             ]]>
             </example>
        </member>
        <member name="M:Cinch.WeakEvent`1.#cctor">
            <summary>
            Constructs a new WeakEvent
            </summary>
        </member>
        <member name="M:Cinch.WeakEvent`1.Add(`0)">
            <summary>
            Add an event handler
            </summary>
            <param name="eh">The handler to add</param>
        </member>
        <member name="M:Cinch.WeakEvent`1.Clear">
            <summary>
            Clear event handlers
            </summary>
        </member>
        <member name="M:Cinch.WeakEvent`1.Remove(`0)">
            <summary>
            removes a specific Event handler
            </summary>
            <param name="eh">Event handler to remove</param>
        </member>
        <member name="M:Cinch.WeakEvent`1.Raise(System.Object,System.EventArgs)">
            <summary>
            Raise event
            </summary>
            <param name="sender">The sender</param>
            <param name="e">The EventArgs to use for event</param>
        </member>
        <member name="M:Cinch.WeakEvent`1.RemoveDeadEntries">
            <summary>
            Remove dead entries
            </summary>
        </member>
        <member name="M:Cinch.WeakEvent`1.EventEntry.#ctor(Cinch.FastSmartWeakEventForwarderProvider.ForwarderDelegate,System.Reflection.MethodInfo,System.WeakReference)">
            <summary>
            Creates a new EventEntry Struct
            </summary>
        </member>
        <member name="T:Cinch.FastSmartWeakEventForwarderProvider">
            <summary>
            Uses Reflection.Emit to create Dynamic delegate to use for 
            event forwarding
            </summary>
        </member>
        <member name="M:Cinch.FastSmartWeakEventForwarderProvider.GetForwarder(System.Reflection.MethodInfo)">
            <summary>
            Dynamically emits a delegate for event forwarding
            </summary>
            <param name="method">The methodInfo to use for forward</param>
            <returns>Delegate for event forwarding</returns>
        </member>
        <member name="M:Cinch.WeakEventAction.#ctor(System.Object,System.Reflection.MethodInfo,System.Type)">
            <summary>
            Constructs a new WeakAction
            </summary>
            <param name="target">The sender</param>
            <param name="method">The _method to call on sender</param>
            <param name="parameterType">The parameter type if using generics</param>
        </member>
        <member name="M:Cinch.WeakEventAction.CreateAction">
            <summary>
            Creates callback delegate
            </summary>
            <returns>Callback delegate</returns>
        </member>
        <member name="T:Cinch.WeakEventHandler`2">
            <summary>
            Provides methods for creating WeakEvent handlers
            </summary>
            <typeparam name="T">The type of the event source</typeparam>
            <typeparam name="E">The EventArgs</typeparam>
        </member>
        <member name="M:Cinch.WeakEventHandler`2.#ctor(System.EventHandler{`1},Cinch.UnregisterCallback{`1})">
            <summary>
            Constructs a new WeakEventHandler
            </summary>
            <param name="eventHandler">The Event handler</param>
            <param name="unregister">Unregister delegate</param>
        </member>
        <member name="M:Cinch.WeakEventHandler`2.Invoke(System.Object,`1)">
            <summary>
            Invokes the event handler if the source is still alive
            </summary>
        </member>
        <member name="T:Cinch.EventHandlerUtils">
             <summary>
             Provides extension method for EventHandler&lt;E&gt;
             </summary>
             <example>
             <![CDATA[
             
                //SO DECLARE LISTENERS LIKE
                workspace.CloseWorkSpace +=
                    new EventHandler<EventArgs>(OnCloseWorkSpace).
                       MakeWeak(eh => workspace.CloseWorkSpace -= eh);
                       
                private void OnCloseWorkSpace(object sender, EventArgs e)
                {
            
                }
                
                //OR YOU COULD CREATE ACTUAL EVENTS LIKE
                public class EventProvider
                {
                     private EventHandler<EventArgs> closeWorkSpace;
                     public event EventHandler<EventArgs> CloseWorkSpace
                     {
                         add
                         {
                             closeWorkSpace += value.MakeWeak(eh => closeWorkSpace -= eh);
                         }
                         remove
                         {
                         }
                     }
                }
             ]]>
             </example>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Cinch.EventHandlerUtils.MakeWeak``1(System.EventHandler{``0},Cinch.UnregisterCallback{``0})" -->
        <member name="T:Cinch.WeakEventProxy`1">
             <summary>
             An event handler wrapper used to create weak-reference event handlers, 
             so that event subscribers can be garbage collected without the event publisher 
             interfering. 
             </summary>
             <typeparam name="TEventArgs">The type of event arguments used in the event handler.
             </typeparam>
             <example>
             <![CDATA[
             
                    You might have an event that is available like ncc.CollectionChanged
             
                    //SO DECLARE LISTENERS LIKE
                    private EventHandler<NotifyCollectionChangedEventArgs> 
                     collectionChangeHandler;
                    private WeakEventProxy<NotifyCollectionChangedEventArgs> 
                     weakCollectionChangeListener;
            
                    //THEN WIRE IT UP LIKE
                    if (weakCollectionChangeListener == null)
                    {
                      collectionChangeHandler = OnCollectionChanged;
                      weakCollectionChangeListener = 
                         new WeakEventProxy<NotifyCollectionChangedEventArgs>(
                             collectionChangeHandler);
                    }
                    ncc.CollectionChanged += weakCollectionChangeListener.Handler;
                    
             
                    private void OnCollectionChanged(object sender, 
                     NotifyCollectionChangedEventArgs e)
                    {
            
                    }
             ]]>
             </example>
        </member>
        <member name="M:Cinch.WeakEventProxy`1.#ctor(System.EventHandler{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:Cinch.WeakEventProxy`1"/> class.
            </summary>
            <param name="callback">The callback.</param>
        </member>
        <member name="M:Cinch.WeakEventProxy`1.Handler(System.Object,`0)">
            <summary>
            Used as the event handler which should be subscribed to source collections.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:Cinch.WeakEventProxy`1.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
            <filterpriority>2</filterpriority>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.CommandDrivenGoToStateAction" -->
        <!-- Badly formed XML comment ignored for member "T:Cinch.CompletedAwareCommandTrigger" -->
        <member name="M:Cinch.CompletedAwareCommandTrigger.OnAttached">
            <summary>
            Called after the behavior is attached to an AssociatedObject.
            </summary>
            <remarks>
            Override this to hook up functionality to the AssociatedObject.
            </remarks>
        </member>
        <member name="P:Cinch.CompletedAwareCommandTrigger.Command">
            <summary>
            Gets or sets the Command property. 
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.CompletedAwareGoToStateCommandTrigger" -->
        <member name="M:Cinch.CompletedAwareGoToStateCommandTrigger.OnAttached">
            <summary>
            Called after the behavior is attached to an AssociatedObject.
            </summary>
            <remarks>
            Override this to hook up functionality to the AssociatedObject.
            </remarks>
        </member>
        <member name="P:Cinch.CompletedAwareGoToStateCommandTrigger.Command">
            <summary>
            Gets or sets the Command property. 
            </summary>
        </member>
        <member name="P:Cinch.CompletedAwareGoToStateCommandTrigger.IsBeingUsedAtRootLevel">
            <summary>
            Gets or sets the IsBeingUsedAtRootLevel property. 
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.EventToCommandTrigger" -->
        <member name="M:Cinch.EventToCommandTrigger.Invoke(System.Object)">
            <param name="parameter">The EventArgs of the fired event.</param>
        </member>
        <member name="M:Cinch.EventToCommandTrigger.OnAttached">
            <summary>
            Called when this trigger is attached to a FrameworkElement.
            </summary>
        </member>
        <member name="F:Cinch.EventToCommandTrigger.CommandParameterProperty">
            <summary>
            Identifies the <see cref="P:Cinch.EventToCommandTrigger.CommandParameter"/> dependency property
            </summary>
        </member>
        <member name="F:Cinch.EventToCommandTrigger.CommandProperty">
            <summary>
            Identifies the <see cref="P:Cinch.EventToCommandTrigger.Command"/> dependency property
            </summary>
        </member>
        <member name="P:Cinch.EventToCommandTrigger.CommandParameter">
            <summary>
            Gets or sets an object that will be passed to the <see cref="P:Cinch.EventToCommandTrigger.Command"/>
            attached to this trigger. This is a DependencyProperty.
            </summary>
        </member>
        <member name="P:Cinch.EventToCommandTrigger.Command">
            <summary>
            Gets or sets the ICommand that this trigger is bound to. This
            is a DependencyProperty.
            </summary>
        </member>
        <member name="T:Cinch.MediatorMessageSinkAttribute">
            <summary>
            This attribute allows a method to be targeted as a recipient for a message.
            It requires that the Type is registered with the MessageMediator through the
            <seealso cref="!:MessageMediator.Register"/> method
            </summary>
            <example>
            <![CDATA[
            [MediatorMessageSinkAttribute("DoBackgroundCheck")]
            void OnBackgroundCheck(object parameter) { ... }
            
            mediator.NotifyColleagues("DoBackgroundCheck", new CheckParameters());
            ...
            mediator.NotifyColleagues(new SomeDataClass(...));
            
            ]]>
            </example>
        </member>
        <member name="M:Cinch.MediatorMessageSinkAttribute.#ctor">
            <summary>
            Default constructor
            </summary>
        </member>
        <member name="M:Cinch.MediatorMessageSinkAttribute.#ctor(System.String)">
            <summary>
            Constructor that takes a message key
            </summary>
            <param name="messageKey">Message Key</param>
        </member>
        <member name="P:Cinch.MediatorMessageSinkAttribute.MessageKey">
            <summary>
            Message key
            </summary>
        </member>
        <member name="T:Cinch.WeakAction">
            <summary>
            This class creates a weak delegate of form Action(Of Object)
            </summary>
        </member>
        <member name="T:Cinch.Mediator">
            <summary>
            This class creates a simple Mediator which loosely connects different objects together. 
            The message handlers are organized using string-based message keys and are held in a WeakReference
            collection.
            </summary>
        </member>
        <member name="M:Cinch.Mediator.RegisterHandler(System.Object,System.Type,System.Delegate)">
            <summary>
            Performs the actual registration of a target
            </summary>
            <param name="key">Key to store in dictionary</param>
            <param name="actionType">Delegate type</param>
            <param name="handler">Method</param>
        </member>
        <member name="M:Cinch.Mediator.UnregisterHandler(System.Object,System.Type,System.Delegate)">
            <summary>
            Performs the unregistration from a target
            </summary>
            <param name="key">Key to store in dictionary</param>
            <param name="actionType">Delegate type</param>
            <param name="handler">Method</param>
        </member>
        <member name="M:Cinch.Mediator.NotifyColleagues(System.Object,System.Object)">
            <summary>
            This method broadcasts a message to all message targets for a given
            message key and passes a parameter.
            </summary>
            <param name="key">Message key</param>
            <param name="message">Message parameter</param>
            <returns>True/False if any handlers were invoked.</returns>
        </member>
        <member name="M:Cinch.Mediator.Register(System.Object)">
            <summary>
            This registers a Type with the mediator.  Any methods decorated with <seealso cref="T:Cinch.MediatorMessageSinkAttribute"/> will be 
            registered as target method handlers for the given message key.
            </summary>
            <param name="view">Object to register</param>
        </member>
        <member name="M:Cinch.Mediator.Unregister(System.Object)">
            <summary>
            This method unregisters a type from the message mediator.
            </summary>
            <param name="view">Object to unregister</param>
        </member>
        <member name="M:Cinch.Mediator.RegisterHandler``1(System.String,System.Action{``0})">
            <summary>
            This registers a specific method as a message handler for a specific type.
            </summary>
            <param name="key">Message key</param>
            <param name="handler">Handler method</param>
        </member>
        <member name="M:Cinch.Mediator.RegisterHandler``1(System.Action{``0})">
            <summary>
            This registers a specific method as a message handler for a specific type.
            </summary>
            <param name="handler">Handler method</param>
        </member>
        <member name="M:Cinch.Mediator.UnregisterHandler``1(System.String,System.Action{``0})">
            <summary>
            This unregisters a method as a handler.
            </summary>
            <param name="key">Message key</param>
            <param name="handler">Handler</param>
        </member>
        <member name="M:Cinch.Mediator.UnregisterHandler``1(System.Action{``0})">
            <summary>
            This unregisters a method as a handler for a specific type
            </summary>
            <param name="handler">Handler</param>
        </member>
        <member name="M:Cinch.Mediator.NotifyColleagues``1(System.String,``0)">
            <summary>
            This method broadcasts a message to all message targets for a given
            message key and passes a parameter.
            </summary>
            <param name="key">Message key</param>
            <param name="message">Message parameter</param>
            <returns>True/False if any handlers were invoked.</returns>
        </member>
        <member name="M:Cinch.Mediator.NotifyColleagues``1(``0)">
            <summary>
            This method broadcasts a message to all message targets for a given parameter type.
            If a derived type is passed, any handlers for interfaces or base types will also be
            invoked.
            </summary>
            <param name="message">Message parameter</param>
            <returns>True/False if any handlers were invoked.</returns>
        </member>
        <member name="M:Cinch.Mediator.NotifyColleaguesAsync``1(System.String,``0)">
            <summary>
            This method broadcasts a message to all message targets for a given
            message key and passes a parameter.  The message targets are all called
            asynchronously and any resulting exceptions are ignored.
            </summary>
            <param name="key">Message key</param>
            <param name="message">Message parameter</param>
        </member>
        <member name="M:Cinch.Mediator.NotifyColleaguesAsync``1(``0)">
            <summary>
            This method broadcasts a message to all message targets for a given parameter type.
            If a derived type is passed, any handlers for interfaces or base types will also be
            invoked.  The message targets are all called asynchronously and any resulting exceptions
            are ignored.
            </summary>
            <param name="message">Message parameter</param>
        </member>
        <member name="P:Cinch.Mediator.Instance">
            <summary>
            Singleton Instance
            </summary>
        </member>
        <member name="T:Cinch.DispatcherExtensions">
            <summary>
            Provides a set of commonly used Dispatcher extension methods for WPF
            </summary>
        </member>
        <member name="M:Cinch.DispatcherExtensions.InvokeIfRequired(System.Windows.Threading.Dispatcher,System.Action,System.Windows.Threading.DispatcherPriority)">
            <summary>
            A simple threading extension method, to invoke a delegate
            on the correct thread if it is not currently on the correct thread
            which can be used with DispatcherObject types.
            </summary>
            <param name="dispatcher">The Dispatcher object on which to 
            perform the Invoke</param>
            <param name="action">The delegate to run</param>
            <param name="priority">The DispatcherPriority for the invoke.</param>
        </member>
        <member name="M:Cinch.DispatcherExtensions.InvokeIfRequired(System.Windows.Threading.Dispatcher,System.Action)">
            <summary>
            A simple threading extension method, to invoke a delegate
            on the correct thread if it is not currently on the correct thread
            which can be used with DispatcherObject types.
            </summary>
            <param name="dispatcher">The Dispatcher object on which to 
            perform the Invoke</param>
            <param name="action">The delegate to run</param>
        </member>
        <member name="M:Cinch.DispatcherExtensions.InvokeInBackgroundIfRequired(System.Windows.Threading.Dispatcher,System.Action)">
            <summary>
            A simple threading extension method, to invoke a delegate
            on the correct thread if it is not currently on the correct thread
            which can be used with DispatcherObject types.
            </summary>
            <param name="dispatcher">The Dispatcher object on which to 
            perform the Invoke</param>
            <param name="action">The delegate to run</param>
        </member>
        <member name="M:Cinch.DispatcherExtensions.InvokeAsynchronouslyInBackground(System.Windows.Threading.Dispatcher,System.Action)">
            <summary>
            A simple threading extension method, to invoke a delegate
            on the correct thread asynchronously if it is not currently 
            on the correct thread which can be used with DispatcherObject types.
            </summary>
            <param name="dispatcher">The Dispatcher object on which to 
            perform the Invoke</param>
            <param name="action">The delegate to run</param>
        </member>
        <member name="T:Cinch.FocusBehaviorBase">
            <summary>
            Provides a focus behaviour base class that attempts
            to focus elements by matching their bound property paths
            with a input propertyPath string 
            </summary>
        </member>
        <member name="M:Cinch.FocusBehaviorBase.ConductFocusOnElement(System.Windows.Data.Binding,System.String,System.Boolean)">
            <summary>
            Attempts to force focus to the bound property with the same propertyPath
            as the propertyPath input
            </summary>
            <param name="elementBinding">Binding to evaluate</param>
            <param name="propertyPath">propertyPath to try and find finding for</param>
            <param name="isUsingDataWrappers">shoul be true if the property is bound to a 
            <c>Cinch.DataWrapper</c></param>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.NumericTextBoxBehaviour" -->
        <member name="M:Cinch.NumericTextBoxBehaviour.OnClipboardPaste(System.Object,System.Windows.DataObjectPastingEventArgs)">
            <summary>
            This method handles paste and drag/drop events onto the TextBox.  It restricts the character
            set to numerics and ensures we have consistent behavior. 
            This is only available in WPF
            </summary>
            <param name="sender">TextBox sender</param>
            <param name="e">EventArgs</param>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.SelectorDoubleClickCommandBehavior" -->
        <member name="M:Cinch.SelectorDoubleClickCommandBehavior.Invoke(System.Object,System.Windows.Input.MouseButtonEventArgs)">
            <param name="parameter">The EventArgs of the fired event.</param>
        </member>
        <member name="F:Cinch.SelectorDoubleClickCommandBehavior.CommandParameterProperty">
            <summary>
            Identifies the <see cref="P:Cinch.SelectorDoubleClickCommandBehavior.CommandParameter"/> dependency property
            </summary>
        </member>
        <member name="F:Cinch.SelectorDoubleClickCommandBehavior.CommandProperty">
            <summary>
            Identifies the <see cref="P:Cinch.SelectorDoubleClickCommandBehavior.Command"/> dependency property
            </summary>
        </member>
        <member name="P:Cinch.SelectorDoubleClickCommandBehavior.CommandParameter">
            <summary>
            Gets or sets an object that will be passed to the <see cref="P:Cinch.SelectorDoubleClickCommandBehavior.Command"/>
            attached to this trigger. This is a DependencyProperty.
            </summary>
        </member>
        <member name="P:Cinch.SelectorDoubleClickCommandBehavior.Command">
            <summary>
            Gets or sets the ICommand that this trigger is bound to. This
            is a DependencyProperty.
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.TextBoxFocusBehavior" -->
        <member name="F:Cinch.TextBoxFocusBehavior.IsUsingDataWrappersProperty">
            <summary>
            IsUsingDataWrappers Dependency Property
            </summary>
        </member>
        <member name="P:Cinch.TextBoxFocusBehavior.IsUsingDataWrappers">
            <summary>
            Gets or sets the IsUsingDataWrappers property.  
            </summary>
        </member>
        <member name="T:Cinch.BindingDecoratorBase">
            <summary>
            A base class for custom markup extension which provides properties
            that can be found on regular <see cref="P:Cinch.BindingDecoratorBase.Binding"/> markup extension.
            </summary>
        </member>
        <member name="F:Cinch.BindingDecoratorBase.binding">
            <summary>
            The decorated binding class.
            </summary>
        </member>
        <member name="M:Cinch.BindingDecoratorBase.ProvideValue(System.IServiceProvider)">
            <summary>
            This basic implementation just sets a binding on the targeted
            <see cref="T:System.Windows.DependencyObject"/> and returns the appropriate
            <see cref="T:System.Windows.Data.BindingExpressionBase"/> instance.<br/>
            All this work is delegated to the decorated <see cref="P:Cinch.BindingDecoratorBase.Binding"/>
            instance.
            </summary>
            <returns>
            The object value to set on the property where the extension is applied. 
            In case of a valid binding expression, this is a <see cref="T:System.Windows.Data.BindingExpressionBase"/>
            instance.
            </returns>
            <param name="provider">Object that can provide services for the markup
            extension.</param>
        </member>
        <member name="M:Cinch.BindingDecoratorBase.TryGetTargetItems(System.IServiceProvider,System.Windows.DependencyObject@,System.Windows.DependencyProperty@)">
            <summary>
            Validates a service provider that was submitted to the <see cref="M:Cinch.BindingDecoratorBase.ProvideValue(System.IServiceProvider)"/>
            method. This method checks whether the provider is null (happens at design time),
            whether it provides an <see cref="T:System.Windows.Markup.IProvideValueTarget"/> service, and whether
            the service's <see cref="P:System.Windows.Markup.IProvideValueTarget.TargetObject"/> and
            <see cref="P:System.Windows.Markup.IProvideValueTarget.TargetProperty"/> properties are valid
            <see cref="T:System.Windows.DependencyObject"/> and <see cref="T:System.Windows.DependencyProperty"/>
            instances.
            </summary>
            <param name="provider">The provider to be validated.</param>
            <param name="target">The binding target of the binding.</param>
            <param name="dp">The target property of the binding.</param>
            <returns>True if the provider supports all that's needed.</returns>
        </member>
        <member name="P:Cinch.BindingDecoratorBase.Binding">
            <summary>
            The decorated binding class.
            </summary>
        </member>
        <member name="T:Cinch.Properties.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Cinch.Properties.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Cinch.Properties.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="T:Cinch.EditableValidatingObject">
            <summary>
            Provides a IDataErrorInfo validating object that is also
            editable by implementing the IEditableObject interface
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.ValidatingObject" -->
        <member name="T:Cinch.IParentablePropertyExposer">
            <summary>
            This interface is implemented by both the 
            <see cref="T:Cinch.ValidatingObject">ValidatingObject</see> and the
            <see cref="T:Cinch.ViewModelBase">ViewModelBase</see> classes, and is used
            to expose the list of delegates that are currently listening to the
            <see cref="T:System.ComponentModel.INotifyPropertyChanged">INotifyPropertyChanged</see>
            PropertyChanged event. This is done so that the internal 
            <see cref="!:DataWrapper">DataWrapper</see> classes can notify their parent object
            when an internal <see cref="!:DataWrapper">DataWrapper</see> property changes
            </summary>
        </member>
        <member name="M:Cinch.ValidatingObject.GetBrokenRules">
            <summary>
            Validates all rules on this domain object, returning a list of the broken rules.
            </summary>
            <returns>A read-only collection of rules that have been broken.</returns>
        </member>
        <member name="M:Cinch.ValidatingObject.GetBrokenRules(System.String)">
            <summary>
            Validates all rules on this domain object for a given property, 
            returning a list of the broken rules.
            </summary>
            <param name="property">The name of the property to check for. 
            If null or empty, all rules will be checked.</param>
            <returns>A read-only collection of rules that have been broken.</returns>
        </member>
        <member name="M:Cinch.ValidatingObject.AddRule(Cinch.Rule)">
            <summary>
            Adds a new rule to the list of rules
            </summary>
            <param name="newRule">The new rule</param>
        </member>
        <member name="M:Cinch.ValidatingObject.NotifyChanged(System.String[])">
            <summary>
            A helper method that raises the PropertyChanged event for a property.
            </summary>
            <param name="propertyNames">The names of the properties that changed.</param>
        </member>
        <member name="M:Cinch.ValidatingObject.CleanString(System.String)">
            <summary>
            Cleans a string by ensuring it isn't null and trimming it.
            </summary>
            <param name="s">The string to clean.</param>
        </member>
        <member name="M:Cinch.ValidatingObject.VerifyPropertyName(System.String)">
            <summary>
            Warns the developer if this object does not have
            a public property with the specified name. This 
            method does not exist in a Release build.
            </summary>
        </member>
        <member name="M:Cinch.ValidatingObject.NotifyPropertyChanged(System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Notify using pre-made PropertyChangedEventArgs
            </summary>
            <param name="args"></param>
        </member>
        <member name="M:Cinch.ValidatingObject.NotifyPropertyChanged(System.String)">
            <summary>
            Notify using String property name
            </summary>
        </member>
        <member name="M:Cinch.ValidatingObject.GetINPCSubscribers">
            <summary>
            Returns the list of delegates that are currently subscribed for the
            <see cref="T:System.ComponentModel.INotifyPropertyChanged">INotifyPropertyChanged</see>
            PropertyChanged event
            </summary>
        </member>
        <member name="P:Cinch.ValidatingObject.IsValid">
            <summary>
            Gets a value indicating whether or not this domain object is valid. 
            </summary>
        </member>
        <member name="P:Cinch.ValidatingObject.Error">
            <summary>
            Gets an error message indicating what is wrong with this domain object. 
            The default is an empty string ("").
            </summary>
        </member>
        <member name="P:Cinch.ValidatingObject.Item(System.String)">
            <summary>
            Gets the error message for the property with the given name.
            </summary>
            <param name="propertyName">The name of the property whose error 
            message to get.</param>
            <returns>The error message for the property. 
            The default is an empty string ("").</returns>
        </member>
        <member name="P:Cinch.ValidatingObject.ThrowOnInvalidPropertyName">
            <summary>
            Returns whether an exception is thrown, or if a Debug.Fail() is used
            when an invalid property name is passed to the VerifyPropertyName method.
            The default value is false, but subclasses used by unit tests might 
            override this property's getter to return true.
            </summary>
        </member>
        <member name="F:Cinch.EditableValidatingObject._savedState">
            <summary>
            This stores the current "copy" of the object. 
            If it is non-null, then we are in the middle of an 
            editable operation.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingObject.BeginEdit">
            <summary>
            Begins an edit on an object.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingObject.OnBeginEdit">
            <summary>
            Interception point for derived logic to do work when beginning edit.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingObject.CancelEdit">
            <summary>
            Discards changes since the last 
            <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> call.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingObject.OnCancelEdit">
            <summary>
            This is called in response CancelEdit and provides an interception point.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingObject.EndEdit">
            <summary>
            Pushes changes since the last 
            <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> 
            or <see cref="M:System.ComponentModel.IBindingList.AddNew"/> 
            call into the underlying object.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingObject.OnEndEdit">
            <summary>
            This is called in response EndEdit and provides an interception point.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingObject.GetFieldValues">
            <summary>
            This is used to clone the object.  
            Override the method to provide a more efficient clone.  
            The default implementation simply reflects across 
            the object copying every field.
            </summary>
            <returns>Clone of current object</returns>
        </member>
        <member name="M:Cinch.EditableValidatingObject.RestoreFieldValues(System.Collections.Generic.Dictionary{System.String,System.Object})">
            <summary>
            This restores the state of the current object from the passed clone object.
            </summary>
            <param name="fieldValues">Object to restore state from</param>
        </member>
        <member name="T:Cinch.DataWrapperDirtySupportingBase">
             <summary>
             Abstract base class for DataWrapper which will support IsDirty. So in your ViewModel
             you could do something like
             
             <example>
             <![CDATA[
             
            public bool IsDirty
            {
               get
               {
                 return cachedListOfDataWrappers.Where(x => (x is IChangeIndicator)
                 &&  ((IChangeIndicator)x).IsDirty).Count() > 0;
               }
            
             } 
             ]]>
             </example>
             </summary>
        </member>
        <member name="M:Cinch.DataWrapperDirtySupportingBase.HasPropertyChanged(System.String)">
            <summary>
            Deteremines if a property has changes since is was put into edit mode
            </summary>
            <param name="propertyName">The property name</param>
            <returns>True if the property has changes since is was put into edit mode</returns>
            <summary>
            Deteremines if a property has changes since is was put into edit mode
            </summary>
            <param name="propertyName">The property name</param>
            <returns>True if the property has changes since is was put into edit mode</returns>
        </member>
        <member name="T:Cinch.DataWrapperBase">
            <summary>
            Abstract base class for DataWrapper - allows easier access to
            methods for the DataWrapperHelper.
            </summary>
        </member>
        <member name="M:Cinch.DataWrapperBase.#ctor(Cinch.IParentablePropertyExposer,System.ComponentModel.PropertyChangedEventArgs,System.Action)">
            <summary>
            This constructor is intended for use with Partial classes
            as generated by the Cinch code generator
            </summary>
        </member>
        <member name="M:Cinch.DataWrapperBase.NotifyParentPropertyChanged">
            <summary>
            Notifies all the parent (INPC) objects INotifyPropertyChanged.PropertyChanged subscribed delegates
            that an internal DataWrapper property value has changed, which in turn raises the appropriate
            INotifyPropertyChanged.PropertyChanged event on the parent (INPC) object
            </summary>
        </member>
        <member name="F:Cinch.DataWrapperBase.isReadOnlyChangeArgs">
            <summary>
            This indicated whether the DataWrapper is Readonly. This is expected
            to be the inverse of the IsEditable property. This property has been
            added for convenience, so you do not have to use a ValueConverter in
            your XAML to convert IsEditable -> ReadOnly in controls that support
            ReadOnly such as textBox
            </summary>
        </member>
        <member name="F:Cinch.DataWrapperBase.isEditableChangeArgs">
            <summary>
            The editable state of the data, the View
            is expected to use this to enable/disable
            data entry. The ViewModel would set this
            property
            </summary>
        </member>
        <member name="T:Cinch.IDataWrapper`1">
            <summary>
            This interface is here so to ensure that both DataWrapper of T
            and DataWrapperExt of T have a commonly named property for
            the data (DataValue) and that we can safely retrieve this
            name elsewhere via static reflection.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:Cinch.IChangeIndicator">
            <summary>
            Allows IsDierty to be determined for a cached list of DataWrappers
            </summary>
        </member>
        <member name="T:Cinch.DataWrapper`1">
            <summary>
            Provides a wrapper around a single piece of data
            such that the ViewModel can put the data item
            into a editable state and the View can bind to
            both the DataValue for the actual Value, and to 
            the IsEditable to determine if the control which
            has the data is allowed to be used for entering data.
            
            The Viewmodel is expected to set the state of the
            IsEditable property for all DataWrappers in a given Model
            </summary>
            <typeparam name="T">The type of the Data</typeparam>
        </member>
        <member name="M:Cinch.DataWrapper`1.#ctor(Cinch.IParentablePropertyExposer,System.ComponentModel.PropertyChangedEventArgs,System.Action)">
            <summary>
            This constructor is intended for use with Partial classes
            as generated by the Cinch code generator
            </summary>
        </member>
        <member name="F:Cinch.DataWrapper`1.dataValueChangeArgs">
            <summary>
            The actual data value, the View is
            expected to bind to this to display data
            </summary>
        </member>
        <member name="T:Cinch.DataWrapperHelper">
            <summary>
            Provides helper methods for dealing with DataWrappers
            within the Cinch library. 
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Cinch.DataWrapperHelper.SetMode(System.Collections.Generic.IEnumerable{Cinch.DataWrapperBase},Cinch.ViewMode)" -->
        <member name="M:Cinch.DataWrapperHelper.SetBeginEdit(System.Collections.Generic.IEnumerable{Cinch.DataWrapperBase})">
            <summary>
            Loops through a source object (UI Model class is expected really) and attempts
            to call the BeginEdit() method of all the  Cinch.DataWrapper fields
            </summary>
            <param name="wrapperProperties">The DataWrapperBase objects</param>
        </member>
        <member name="M:Cinch.DataWrapperHelper.SetCancelEdit(System.Collections.Generic.IEnumerable{Cinch.DataWrapperBase})">
            <summary>
            Loops through a source object (UI Model class is expected really) and attempts
            to call the CancelEdit() method of all the  Cinch.DataWrapper fields
            </summary>
            <param name="wrapperProperties">The DataWrapperBase objects</param>
        </member>
        <member name="M:Cinch.DataWrapperHelper.SetEndEdit(System.Collections.Generic.IEnumerable{Cinch.DataWrapperBase})">
            <summary>
            Loops through a source object (UI Model class is expected really) and attempts
            to call the EditEdit() method of all the  Cinch.DataWrapper fields
            </summary>
            <param name="wrapperProperties">The DataWrapperBase objects</param>
        </member>
        <member name="M:Cinch.DataWrapperHelper.AllValid(System.Collections.Generic.IEnumerable{Cinch.DataWrapperBase})">
            <summary>
            Loops through a source object (UI Model class is expected really) and attempts
            to call the EditEdit() method of all the  Cinch.DataWrapper fields
            </summary>
            <param name="wrapperProperties">The DataWrapperBase objects</param>
        </member>
        <member name="M:Cinch.DataWrapperHelper.GetWrapperProperties``1(``0)">
            <summary>
            Get a list of the wrapper properties on the parent object.
            </summary>
            <typeparam name="T">The type of object</typeparam>
            <param name="parentObject">The parent object to examine</param>
            <returns>A IEnumerable of DataWrapperBase</returns>
        </member>
        <member name="T:Cinch.ViewAwareStatusWindow">
            <summary>
            View aware service that provides the following Events. Where we are specifically
            targetting a Window type. As such this is only available for WPF
               ViewLoaded / ViewUnloaded
               ViewActivated / ViewDeactivated
               ViewWindowClosed / ViewWindowContentRendered / 
               ViewWindowLocationChanged / ViewWindowStateChanged
            3. Views current Dispatcher
            4. If the view implements <c>IViewCreationContextProvider</c>
               the current Views Context will also be available to allow
               the ViewModel to obtain some view specific contextual information
            </summary>
        </member>
        <member name="T:Cinch.ViewAwareStatus">
            <summary>
            View aware service that provides the following
            1. Events for ViewLoaded / ViewUnloaded (WPF and SL)
            2. Events for ViewActivated / ViewDeactivated (WPF Only)
            3. Views current Dispatcher
            4. If the view implements <c>IViewCreationContextProvider</c>
               the current Views Context will also be available to allow
               the ViewModel to obtain some view specific contextual information
            </summary>
        </member>
        <member name="T:Cinch.VisualStateManagerService">
            <summary>
            A VisualState manager service for use with WPF/SL
            </summary>
        </member>
        <member name="T:Cinch.WPFMessageBoxService">
            <summary>
            This class implements the IMessageBoxService for WPF purposes.
            </summary>
        </member>
        <member name="T:Cinch.IMessageBoxService">
            <summary>
            This interface defines a interface that will allow 
            a ViewModel to show a messagebox
            </summary>
        </member>
        <member name="M:Cinch.IMessageBoxService.ShowError(System.String)">
            <summary>
            Shows an error message
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Cinch.IMessageBoxService.ShowInformation(System.String)">
            <summary>
            Shows an information message
            </summary>
            <param name="message">The information message</param>
        </member>
        <member name="M:Cinch.IMessageBoxService.ShowWarning(System.String)">
            <summary>
            Shows an warning message
            </summary>
            <param name="message">The warning message</param>
        </member>
        <member name="M:Cinch.IMessageBoxService.ShowYesNo(System.String,Cinch.CustomDialogIcons)">
            <summary>
            Displays a Yes/No dialog and returns the user input.
            </summary>
            <param name="message">The message to be displayed.</param>
            <param name="icon">The icon to be displayed.</param>
            <returns>User selection.</returns>
        </member>
        <member name="M:Cinch.IMessageBoxService.ShowYesNoCancel(System.String,Cinch.CustomDialogIcons)">
            <summary>
            Displays a Yes/No/Cancel dialog and returns the user input.
            </summary>
            <param name="message">The message to be displayed.</param>
            <param name="icon">The icon to be displayed.</param>
            <returns>User selection.</returns>
        </member>
        <member name="M:Cinch.IMessageBoxService.ShowOkCancel(System.String,Cinch.CustomDialogIcons)">
            <summary>
            Displays a OK/Cancel dialog and returns the user input.
            </summary>
            <param name="message">The message to be displayed.</param>
            <param name="icon">The icon to be displayed.</param>
            <returns>User selection.</returns>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.ShowError(System.String)">
            <summary>
            Displays an error dialog with a given message.
            </summary>
            <param name="message">The message to be displayed.</param>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.ShowInformation(System.String)">
            <summary>
            Displays an error dialog with a given message.
            </summary>
            <param name="message">The message to be displayed.</param>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.ShowWarning(System.String)">
            <summary>
            Displays an error dialog with a given message.
            </summary>
            <param name="message">The message to be displayed.</param>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.ShowYesNo(System.String,Cinch.CustomDialogIcons)">
            <summary>
            Displays a Yes/No dialog and returns the user input.
            </summary>
            <param name="message">The message to be displayed.</param>
            <param name="icon">The icon to be displayed.</param>
            <returns>User selection.</returns>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.ShowYesNoCancel(System.String,Cinch.CustomDialogIcons)">
            <summary>
            Displays a Yes/No/Cancel dialog and returns the user input.
            </summary>
            <param name="message">The message to be displayed.</param>
            <param name="icon">The icon to be displayed.</param>
            <returns>User selection.</returns>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.ShowOkCancel(System.String,Cinch.CustomDialogIcons)">
            <summary>
            Displays a OK/Cancel dialog and returns the user input.
            </summary>
            <param name="message">The message to be displayed.</param>
            <param name="icon">The icon to be displayed.</param>
            <returns>User selection.</returns>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.ShowMessage(System.String,System.String,Cinch.CustomDialogIcons)">
            <summary>
            Shows a standard System.Windows.MessageBox using the parameters requested
            </summary>
            <param name="message">The message to be displayed.</param>
            <param name="heading">The heading to be displayed</param>
            <param name="icon">The icon to be displayed.</param>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.ShowQuestionWithButton(System.String,Cinch.CustomDialogIcons,Cinch.CustomDialogButtons)">
            <summary>
            Shows a standard System.Windows.MessageBox using the parameters requested
            but will return a translated result to enable adhere to the IMessageBoxService
            implementation required. 
            
            This abstraction allows for different frameworks to use the same ViewModels but supply
            alternative implementations of core service interfaces
            </summary>
            <param name="message">The message to be displayed.</param>
            <param name="icon">The icon to be displayed.</param>
            <param name="button"></param>
            <returns>CustomDialogResults results to use</returns>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.GetImage(Cinch.CustomDialogIcons)">
            <summary>
            Translates a CustomDialogIcons into a standard WPF System.Windows.MessageBox MessageBoxImage.
            This abstraction allows for different frameworks to use the same ViewModels but supply
            alternative implementations of core service interfaces
            </summary>
            <param name="icon">The icon to be displayed.</param>
            <returns>A standard WPF System.Windows.MessageBox MessageBoxImage</returns>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.GetButton(Cinch.CustomDialogButtons)">
            <summary>
            Translates a CustomDialogButtons into a standard WPF System.Windows.MessageBox MessageBoxButton.
            This abstraction allows for different frameworks to use the same ViewModels but supply
            alternative implementations of core service interfaces
            </summary>
            <param name="btn">The button type to be displayed.</param>
            <returns>A standard WPF System.Windows.MessageBox MessageBoxButton</returns>
        </member>
        <member name="M:Cinch.WPFMessageBoxService.GetResult(System.Windows.MessageBoxResult)">
            <summary>
            Translates a standard WPF System.Windows.MessageBox MessageBoxResult into a
            CustomDialogIcons.
            This abstraction allows for different frameworks to use the same ViewModels but supply
            alternative implementations of core service interfaces
            </summary>
            <param name="result">The standard WPF System.Windows.MessageBox MessageBoxResult</param>
            <returns>CustomDialogResults results to use</returns>
        </member>
        <member name="T:Cinch.WPFOpenFileService">
            <summary>
            This class implements the IOpenFileService for WPF purposes.
            </summary>
        </member>
        <member name="T:Cinch.IOpenFileService">
            <summary>
            This interface defines a interface that will allow 
            a ViewModel to open a file
            </summary>
        </member>
        <member name="M:Cinch.IOpenFileService.ShowDialog(System.Windows.Window)">
            <summary>
            This method should show a window that allows a file to be selected
            </summary>
            <param name="owner">The owner window of the dialog</param>
            <returns>A bool from the ShowDialog call</returns>
        </member>
        <member name="P:Cinch.IOpenFileService.FileName">
            <summary>
            FileName
            </summary>
        </member>
        <member name="P:Cinch.IOpenFileService.Filter">
            <summary>
            Filter
            </summary>
        </member>
        <member name="P:Cinch.IOpenFileService.InitialDirectory">
            <summary>
            Filter
            </summary>
        </member>
        <member name="F:Cinch.WPFOpenFileService.ofd">
            <summary>
            Embedded OpenFileDialog to pass back correctly selected
            values to ViewModel
            </summary>
        </member>
        <member name="M:Cinch.WPFOpenFileService.ShowDialog(System.Windows.Window)">
            <summary>
            This method should show a window that allows a file to be selected
            </summary>
            <param name="owner">The owner window of the dialog</param>
            <returns>A bool from the ShowDialog call</returns>
        </member>
        <member name="P:Cinch.WPFOpenFileService.FileName">
            <summary>
            FileName : Simply use embedded OpenFileDialog.FileName
            Also allow users to set new FileName, which sets OpenFileDialog.FileName
            </summary>
        </member>
        <member name="P:Cinch.WPFOpenFileService.Filter">
            <summary>
            Filter : Simply use embedded OpenFileDialog.Filter
            </summary>
        </member>
        <member name="P:Cinch.WPFOpenFileService.InitialDirectory">
            <summary>
            Filter : Simply use embedded OpenFileDialog.InitialDirectory
            </summary>
        </member>
        <member name="T:Cinch.WPFSaveFileService">
            <summary>
            This class implements the ISaveFileService for WPF purposes.
            </summary>
        </member>
        <member name="T:Cinch.ISaveFileService">
            <summary>
            This interface defines a interface that will allow 
            a ViewModel to save a file
            </summary>
        </member>
        <member name="M:Cinch.ISaveFileService.ShowDialog(System.Windows.Window)">
            <summary>
            This method should show a window that allows a file to be saved
            </summary>
            <param name="owner">The owner window of the dialog</param>
            <returns>A bool from the ShowDialog call</returns>
        </member>
        <member name="P:Cinch.ISaveFileService.OverwritePrompt">
            <summary>
            FileName
            </summary>
        </member>
        <member name="P:Cinch.ISaveFileService.FileName">
            <summary>
            FileName
            </summary>
        </member>
        <member name="P:Cinch.ISaveFileService.Filter">
            <summary>
            Filter
            </summary>
        </member>
        <member name="P:Cinch.ISaveFileService.InitialDirectory">
            <summary>
            Filter
            </summary>
        </member>
        <member name="F:Cinch.WPFSaveFileService.sfd">
            <summary>
            Embedded SaveFileDialog to pass back correctly selected
            values to ViewModel
            </summary>
        </member>
        <member name="M:Cinch.WPFSaveFileService.ShowDialog(System.Windows.Window)">
            <summary>
            This method should show a window that allows a file to be selected
            </summary>
            <param name="owner">The owner window of the dialog</param>
            <returns>A bool from the ShowDialog call</returns>
        </member>
        <member name="P:Cinch.WPFSaveFileService.FileName">
            <summary>
            FileName : Simply use embedded SaveFileDialog.FileName
            Also allow users to set new FileName, which sets SaveFileDialog.FileName
            </summary>
        </member>
        <member name="P:Cinch.WPFSaveFileService.Filter">
            <summary>
            Filter : Simply use embedded SaveFileDialog.Filter
            </summary>
        </member>
        <member name="P:Cinch.WPFSaveFileService.InitialDirectory">
            <summary>
            Filter : Simply use embedded SaveFileDialog.InitialDirectory
            </summary>
        </member>
        <member name="P:Cinch.WPFSaveFileService.OverwritePrompt">
            <summary>
            OverwritePrompt : Simply use embedded SaveFileDialog.OverwritePrompt
            </summary>
        </member>
        <member name="T:Cinch.WPFSLFLogger">
            <summary>
            A SimpleLoggerFacade based error logger.
            This is what Cinch uses by default, you can override
            this by supplying a new Cinch.ILogger based service
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.WPFUIVisualizerService" -->
        <member name="T:Cinch.IUIVisualizerService">
            <summary>
            This interface defines a UI controller which can be used to display dialogs
            in either modal or modaless form from a ViewModel.
            </summary>
        </member>
        <member name="M:Cinch.IUIVisualizerService.Register(System.String,System.Type)">
            <summary>
            Registers a type through a key.
            </summary>
            <param name="key">Key for the UI dialog</param>
            <param name="winType">Type which implements dialog</param>
        </member>
        <member name="M:Cinch.IUIVisualizerService.Unregister(System.String)">
            <summary>
            This unregisters a type and removes it from the mapping
            </summary>
            <param name="key">Key to remove</param>
            <returns>True/False success</returns>
        </member>
        <member name="M:Cinch.IUIVisualizerService.Show(System.String,System.Object,System.Boolean,System.EventHandler{Cinch.UICompletedEventArgs})">
            <summary>
            This method displays a modaless dialog associated with the given key.
            </summary>
            <param name="key">Key previously registered with the UI controller.</param>
            <param name="state">Object state to associate with the dialog</param>
            <param name="setOwner">Set the owner of the window</param>
            <param name="completedProc">Callback used when UI closes (may be null)</param>
            <returns>True/False if UI is displayed</returns>
        </member>
        <member name="M:Cinch.IUIVisualizerService.ShowDialog(System.String,System.Object)">
            <summary>
            This method displays a modal dialog associated with the given key.
            </summary>
            <param name="key">Key previously registered with the UI controller.</param>
            <param name="state">Object state to associate with the dialog</param>
            <returns>True/False if UI is displayed.</returns>
        </member>
        <member name="M:Cinch.WPFUIVisualizerService.Register(System.Collections.Generic.Dictionary{System.String,System.Type})">
            <summary>
            Registers a collection of entries
            </summary>
            <param name="startupData"></param>
        </member>
        <member name="M:Cinch.WPFUIVisualizerService.Register(System.String,System.Type)">
            <summary>
            Registers a type through a key.
            </summary>
            <param name="key">Key for the UI dialog</param>
            <param name="winType">Type which implements dialog</param>
        </member>
        <member name="M:Cinch.WPFUIVisualizerService.Unregister(System.String)">
            <summary>
            This unregisters a type and removes it from the mapping
            </summary>
            <param name="key">Key to remove</param>
            <returns>True/False success</returns>
        </member>
        <member name="M:Cinch.WPFUIVisualizerService.Show(System.String,System.Object,System.Boolean,System.EventHandler{Cinch.UICompletedEventArgs})">
            <summary>
            This method displays a modaless dialog associated with the given key.
            </summary>
            <param name="key">Key previously registered with the UI controller.</param>
            <param name="state">Object state to associate with the dialog</param>
            <param name="setOwner">Set the owner of the window</param>
            <param name="completedProc">Callback used when UI closes (may be null)</param>
            <returns>True/False if UI is displayed</returns>
        </member>
        <member name="M:Cinch.WPFUIVisualizerService.ShowDialog(System.String,System.Object)">
            <summary>
            This method displays a modal dialog associated with the given key.
            </summary>
            <param name="key">Key previously registered with the UI controller.</param>
            <param name="state">Object state to associate with the dialog</param>
            <returns>True/False if UI is displayed.</returns>
        </member>
        <member name="M:Cinch.WPFUIVisualizerService.CreateWindow(System.String,System.Object,System.Boolean,System.EventHandler{Cinch.UICompletedEventArgs},System.Boolean)">
            <summary>
            This creates the WPF window from a key.
            </summary>
            <param name="key">Key</param>
            <param name="dataContext">DataContext (state) object</param>
            <param name="setOwner">True/False to set ownership to MainWindow</param>
            <param name="completedProc">Callback</param>
            <param name="isModal">True if this is a ShowDialog request</param>
            <returns>Success code</returns>
        </member>
        <member name="T:Cinch.IKeyTableService">
            <summary>
            This interface defines a interface that will allow 
            a ViewModel to show a messagebox
            </summary>
        </member>
        <member name="T:Cinch.IMenuService">
            <summary>
            This interface defines a interface that will allow 
            a ViewModel to show a messagebox
            </summary>
        </member>
        <member name="T:Cinch.CustomDialogButtons">
            <summary>
            Available Button options. 
            Abstracted to allow some level of UI Agnosticness
            </summary>
        </member>
        <member name="T:Cinch.CustomDialogIcons">
            <summary>
            Available Icon options.
            Abstracted to allow some level of UI Agnosticness
            </summary>
        </member>
        <member name="T:Cinch.CustomDialogResults">
            <summary>
            Available DialogResults options.
            Abstracted to allow some level of UI Agnosticness
            </summary>
        </member>
        <member name="T:Cinch.AddRangeObservableCollection`1">
            <summary>
            This class provides a method to allow mutiple entries to be added
            to an ObservableCollection without the CollectionChanged event being fired.
            As this class also inherits from DispatcherNotifiedObservableCollection, it
            also supports the Dispatcher thread marshalling for added items. 
            
            This class does not take support any thread sycnhronization of
            adding items using multiple threads, that level of thread synchronization
            is left to the user. This class simply marshalls the CollectionChanged
            call to the correct Dispatcher thread
            
            This class was taken and subsequently modified from
            http://peteohanlon.wordpress.com/2008/10/22/bulk-loading-in-observablecollection/
            </summary>
            <typeparam name="T">Type this collection holds</typeparam>
        </member>
        <member name="T:Cinch.DispatcherNotifiedObservableCollection`1">
            <summary>
            This class provides an ObservableCollection which supports the 
            Dispatcher thread marshalling for added items. 
            
            This class does not take support any thread sycnhronization of
            adding items using multiple threads, that level of thread synchronization
            is left to the user. This class simply marshalls the CollectionChanged
            call to the correct Dispatcher thread
            </summary>
            <typeparam name="T">Type this collection holds</typeparam>
        </member>
        <member name="M:Cinch.DispatcherNotifiedObservableCollection`1.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
            <summary>
            Raises the <see cref="E:System.Collections.ObjectModel.
            ObservableCollection`1.CollectionChanged"/> 
            event with the provided arguments.
            </summary>
            <param name="e">Arguments of the event being raised.</param>
        </member>
        <member name="E:Cinch.DispatcherNotifiedObservableCollection`1.CollectionChanged">
            <summary>
            Occurs when an item is added, removed, changed, moved, 
            or the entire list is refreshed.
            </summary>
        </member>
        <member name="M:Cinch.AddRangeObservableCollection`1.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
            <summary>
            Only raise the OnCollectionChanged event if there 
            is currently no suppressed notification
            </summary>
            <param name="e"></param>
        </member>
        <member name="M:Cinch.AddRangeObservableCollection`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds a range of items to the Collection, without firing the
            CollectionChanged event
            </summary>
            <param name="list">The items to add</param>
        </member>
        <member name="T:Cinch.ApplicationHelper">
            <summary>
            This class provides static helper methods for 
            working with the Dispatcher in WPF
            The following MSDN page is quite useful :
            http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.pushframe.aspx
            </summary>
        </member>
        <member name="M:Cinch.ApplicationHelper.DoEvents(System.Windows.Threading.DispatcherPriority)">
            <summary>
            Forces the WPF message pump to process all enqueued messages
            that are above the input parameter DispatcherPriority.
            </summary>
            <param name="priority">The DispatcherPriority to use
            as the lowest level of messages to get processed</param>
        </member>
        <member name="M:Cinch.ApplicationHelper.DoEvents">
            <summary>
            Forces the WPF message pump to process all enqueued messages
            that are DispatcherPriority.Background or above
            </summary>
        </member>
        <member name="M:Cinch.ApplicationHelper.ExitFrameOperation(System.Object)">
            <summary>
            Stops the dispatcher from continuing
            </summary>
        </member>
        <member name="T:Cinch.BackgroundTaskManager`2">
             <summary>
             Class that manages the execution of background tasks, which allows
             a ViewModel to setup a background task using a Func&lt;T&gt; and use
             the completed results using a Action&lt;T&gt;. This class also
             allows Unit tests to be notified when the background tasks completes.
            
             Taken aand subsequently modified from 
             http://blogs.msdn.com/delay/archive/2009/04/08/nobody-likes-seeing-the-hourglass-keep-your-application-responsive-with-backgroundtaskmanager-on-wpf-and-silverlight.aspx
             
             </summary>
             <example>
             <![CDATA[
             
                //==================================================================
                //
                //  EXAMPLE :  Using the BackgroundTaskCompleted Event raised by
                //              the BackgroundTaskManager
                //
                //==================================================================
                //Have a property for the BackgroundTaskManager in the ViewModel
                public BackgroundTaskManager<Int32,Int32> BgWorker
                {
                    get { return bgWorker; }
                    set
                    {
                        bgWorker = value;
                        OnPropertyChanged();
                    }
                }
                
                //Then wire it up
                bgWorker = new BackgroundTaskManager<Int32,Int32>(
                    (argument) =>
                        {
                            Int32 innerCount = 0;
                            for (innerCount = 0; innerCount < argument; innerCount++)
                            {
            
                            }
                            return innerCount;
                        },
                    (result) =>
                        {
                            Count = result;
                        });
                 
                //Some ViewModel method
                public void Test()
                {
                    bgWorker.WorkerArgument=15;
                    bgWorker.RunBackgroundTask();
                }
                        
               //Then use it in Unit test as follows
               ManualResetEvent manualEvent = new ManualResetEvent(false);
               vm.BgWorker.BackgroundTaskCompleted += delegate(object sender, EventArgs args)
               {
                   // Signal the waiting NUnit thread that we're ready to move on.
                   manualEvent.Set();
               };
               vm.Test();
               manualEvent.WaitOne(5000, false);
               Assert.AreEqual(200000000, vm.Count);
             ]]>
             </example>
        </member>
        <member name="M:Cinch.BackgroundTaskManager`2.#ctor">
            <summary>
            Empty constructor
            </summary>
        </member>
        <member name="M:Cinch.BackgroundTaskManager`2.#ctor(System.Func{`0,`1},System.Action{`1})">
            <summary>
            Constructs a new BackgroundTaskManager with
            the function to run, and the action to call when the function to run
            completes
            </summary>
            <param name="taskFunc">The function to run in the background</param>
            <param name="completionAction">The completed action to call
            when the background function completes</param>
        </member>
        <member name="F:Cinch.BackgroundTaskManager`2.BackgroundTaskStarted">
            <summary>
            Event invoked when a background task is started.
            </summary>
        </member>
        <member name="F:Cinch.BackgroundTaskManager`2.BackgroundTaskCompleted">
            <summary>
            Event invoked when a background task completes.
            </summary>
        </member>
        <member name="M:Cinch.BackgroundTaskManager`2.RunBackgroundTask">
            <summary>
            Runs a task function on a background thread; 
            invokes a completion action on the main thread.
            </summary>
        </member>
        <member name="P:Cinch.BackgroundTaskManager`2.TaskFunc">
            <summary>
            The worker work delegate
            </summary>
        </member>
        <member name="P:Cinch.BackgroundTaskManager`2.CompletionAction">
            <summary>
            The worker callback delegate when completed
            </summary>
        </member>
        <member name="P:Cinch.BackgroundTaskManager`2.CompletionWaitHandle">
            <summary>
            Allows the Unit test to be notified on Task completion
            </summary>
        </member>
        <member name="P:Cinch.BackgroundTaskManager`2.WorkerArgument">
            <summary>
            Worker argumemnt
            </summary>
        </member>
        <member name="T:Cinch.AsyncBusyUserControl">
            <summary>
            Control that is shown while threading 
            operation is in progress
            </summary>
            <summary>
            AsyncBusyUserControl
            </summary>
        </member>
        <member name="F:Cinch.AsyncBusyUserControl.AsyncWaitTextProperty">
            <summary>
            AsyncWaitText Dependency Property
            </summary>
        </member>
        <member name="M:Cinch.AsyncBusyUserControl.OnAsyncWaitTextChanged(System.Windows.DependencyObject,System.Windows.DependencyPropertyChangedEventArgs)">
            <summary>
            Handles changes to the AsyncWaitText property.
            </summary>
        </member>
        <member name="M:Cinch.AsyncBusyUserControl.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="P:Cinch.AsyncBusyUserControl.AsyncWaitText">
            <summary>
            Gets or sets the AsyncWaitText property.  
            </summary>
        </member>
        <member name="T:Cinch.AsyncFailedUserControl">
            <summary>
            Control that is shown when the threading 
            operation fails
            </summary>
            <summary>
            AsyncFailedUserControl
            </summary>
        </member>
        <member name="F:Cinch.AsyncFailedUserControl.ErrorProperty">
            <summary>
            Error Dependency Property
            </summary>
        </member>
        <member name="M:Cinch.AsyncFailedUserControl.OnErrorChanged(System.Windows.DependencyObject,System.Windows.DependencyPropertyChangedEventArgs)">
            <summary>
            Handles changes to the Error property.
            </summary>
        </member>
        <member name="M:Cinch.AsyncFailedUserControl.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="P:Cinch.AsyncFailedUserControl.Error">
            <summary>
            Gets or sets the Error property.  
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.AsyncHost" -->
        <member name="F:Cinch.AsyncHost.ShouldCollapseProperty">
            <summary>
            ShouldCollapse Dependency Property
            </summary>
        </member>
        <member name="P:Cinch.AsyncHost.ShouldCollapse">
            <summary>
            Gets or sets the ShouldCollapse property. 
            </summary>
        </member>
        <member name="T:Cinch.CircularProgressBar">
            <summary>
            A circular type progress bar, that is simliar to popular web based
            progress bars
            </summary>
            <summary>
            CircularProgressBar
            </summary>
        </member>
        <member name="M:Cinch.CircularProgressBar.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:Cinch.ISynchronizationContext">
            <summary>
            SynchronizationContext interface that provides
            various thread marshalling calls to be done
            </summary>
        </member>
        <member name="T:Cinch.UISynchronizationContext">
            <summary>
            Singleton class providing the default implementation 
            for the <see cref="T:Cinch.ISynchronizationContext"/>, specifically for the UI thread.
            </summary>
        </member>
        <member name="P:Cinch.UISynchronizationContext.Instance">
            <summary>
            Gets the singleton instance.
            </summary>
            <value>The singleton instance.</value>
        </member>
        <member name="T:Cinch.ArgumentValidator">
            <summary>
            Bunch of helper methods for validating arguments
            </summary>
        </member>
        <member name="T:Cinch.BindingEvaluator">
             <summary>
             Use this evaluator when you do not know the return type expected.
             The return type will always be Object, and you will have to deal with
             that outside of this class
             </summary>
             <remarks>
             Recommended usage:
             <code>
                 TextBox positionedTextBox = new TextBox();
                 Binding positionBinding = new Binding("Minute");
                 positionBinding.Source = System.DateTime.Now;
                 positionedTextBox.SetBinding(Canvas.TopProperty, positionBinding);
                 
                 //Use GenericBindingEvaluator to get Bound Value
                 BindingEvaluator be = new BindingEvaluator();
                 Object x = be.GetBoundValue(positionBinding);
            
             </code>
             </remarks>
        </member>
        <member name="F:Cinch.BindingEvaluator.DummyProperty">
            <summary>
            Dummy internal DP, to bind and get value from
            </summary>
        </member>
        <member name="M:Cinch.BindingEvaluator.GetBoundValue(System.Windows.Data.BindingBase)">
            <summary>
            Evaluate the binding
            </summary>
            <param name="bindingToEvaluate">The BindingBase to get the value of</param>
            <returns>The result of the BindingBase</returns>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.GenericBindingEvaluator`1" -->
        <member name="F:Cinch.GenericBindingEvaluator`1.DummyProperty">
            <summary>
            Dummy internal DP, to bind and get value from
            </summary>
        </member>
        <member name="M:Cinch.GenericBindingEvaluator`1.GetBoundValue(System.Windows.Data.BindingBase)">
            <summary>
            Evaluate the binding
            </summary>
            <param name="bindingToEvaluate">The BindingBase to get the value of</param>
            <returns>The result of the BindingBase</returns>
        </member>
        <member name="T:Cinch.ObservableHelper">
            <summary>
            A small helper class that has a method to help create
            PropertyChangedEventArgs when using the INotifyPropertyChanged
            interface
            </summary>
        </member>
        <member name="M:Cinch.ObservableHelper.CreateArgs``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}})">
            <summary>
            Creates PropertyChangedEventArgs
            </summary>
            <param name="propertyExpression">Expression to make 
            PropertyChangedEventArgs out of</param>
            <returns>PropertyChangedEventArgs</returns>
        </member>
        <member name="M:Cinch.ObservableHelper.GetPropertyName``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}})">
            <summary>
            Creates PropertyChangedEventArgs
            </summary>
            <param name="propertyExpression">Expression to make 
            PropertyChangedEventArgs out of</param>
            <returns>PropertyChangedEventArgs</returns>
        </member>
        <member name="T:Cinch.PropertyObserver`1">
             <summary>
             Monitors the PropertyChanged event of an object that implements INotifyPropertyChanged,
             and executes callback methods (i.e. handlers) registered for properties of that object.
             
             http://joshsmithonwpf.wordpress.com/2009/07/11/one-way-to-avoid-messy-propertychanged-event-handling/
             </summary>
             <example>
             <![CDATA[
             
                PropertyObserver<NumberViewModel> observer;
                
                public NumberChangeLogViewModel()
                {
                    this.Number = new NumberViewModel();
                    this.ChangeLog = new ObservableCollection<string>();
            
                    observer =
                        new PropertyObserver<NumberViewModel>(this.Number)
                           .RegisterHandler(n => n.Value, n => Log("Value: " + n.Value))
                           .RegisterHandler(n => n.IsNegative, this.AppendIsNegative)
                           .RegisterHandler(n => n.IsEven, this.AppendIsEven);
                }
                     
                void AppendIsEven(NumberViewModel number)
                {
                    if (number.IsEven)
                        this.Log("\tNumber is now even");
                    else
                        this.Log("\tNumber is now odd");
                }
            
             void Log(string message)
                {
                    this.ChangeLog.Add(message);
                    this.OnLogged();
                }
             
             ]]>
             </example>
             <typeparam name="TPropertySource">The type of object to monitor for property changes.</typeparam>
        </member>
        <member name="M:Cinch.PropertyObserver`1.#ctor(`0)">
            <summary>
            Initializes a new instance of PropertyObserver, which
            observes the 'propertySource' object for property changes.
            </summary>
            <param name="propertySource">The object to monitor for property changes.</param>
        </member>
        <member name="M:Cinch.PropertyObserver`1.RegisterHandler(System.Linq.Expressions.Expression{System.Func{`0,System.Object}},System.Action{`0})">
            <summary>
            Registers a callback to be invoked when the PropertyChanged event has been raised for the specified property.
            </summary>
            <param name="expression">A lambda expression like 'n => n.PropertyName'.</param>
            <param name="handler">The callback to invoke when the property has changed.</param>
            <returns>The object on which this method was invoked, to allow for multiple invocations chained together.</returns>
        </member>
        <member name="M:Cinch.PropertyObserver`1.UnregisterHandler(System.Linq.Expressions.Expression{System.Func{`0,System.Object}})">
            <summary>
            Removes the callback associated with the specified property.
            </summary>
            <param name="propertyName">A lambda expression like 'n => n.PropertyName'.</param>
            <returns>The object on which this method was invoked, to allow for multiple invocations chained together.</returns>
        </member>
        <member name="T:Cinch.TreeHelper">
            <summary>
            Helper methods for UI-related tasks.
            </summary>
        </member>
        <member name="M:Cinch.TreeHelper.TryFindParent``1(System.Windows.DependencyObject)">
            <summary>
            Finds a parent of a given item on the visual tree.
            </summary>
            <typeparam name="T">The type of the queried item.</typeparam>
            <param name="child">A direct or indirect child of the
            queried item.</param>
            <returns>The first parent item that matches the submitted
            type parameter. If not matching item can be found, a null
            reference is being returned.</returns>
        </member>
        <member name="M:Cinch.TreeHelper.GetParentObject(System.Windows.DependencyObject)">
            <summary>
            This method is an alternative to WPF's
            <see cref="M:System.Windows.Media.VisualTreeHelper.GetParent(System.Windows.DependencyObject)"/> method, which also
            supports content elements. Keep in mind that for content element,
            this method falls back to the logical tree of the element!
            </summary>
            <param name="child">The item to be processed.</param>
            <returns>The submitted item's parent, if available. Otherwise
            null.</returns>
        </member>
        <member name="M:Cinch.TreeHelper.FindChildren``1(System.Windows.DependencyObject)">
            <summary>
            Analyzes both visual and logical tree in order to find all elements of a given
            type that are descendants of the <paramref name="source"/> item.
            </summary>
            <typeparam name="T">The type of the queried items.</typeparam>
            <param name="source">The root element that marks the source of the search. If the
            source is already of the requested type, it will not be included in the result.</param>
            <returns>All descendants of <paramref name="source"/> that match the requested type.</returns>
        </member>
        <member name="M:Cinch.TreeHelper.GetChildObjects(System.Windows.DependencyObject)">
            <summary>
            This method is an alternative to WPF's
            <see cref="M:System.Windows.Media.VisualTreeHelper.GetChild(System.Windows.DependencyObject,System.Int32)"/> method, which also
            supports content elements. Keep in mind that for content elements,
            this method falls back to the logical tree of the element.
            </summary>
            <param name="parent">The item to be processed.</param>
            <returns>The submitted item's child elements, if available.</returns>
        </member>
        <member name="M:Cinch.TreeHelper.TryFindFromPoint``1(System.Windows.UIElement,System.Windows.Point)">
            <summary>
            Tries to locate a given item within the visual tree,
            starting with the dependency object at a given position. 
            </summary>
            <typeparam name="T">The type of the element to be found
            on the visual tree of the element at the given location.</typeparam>
            <param name="reference">The main element which is used to perform
            hit testing.</param>
            <param name="point">The position to be evaluated on the origin.</param>
        </member>
        <member name="T:Cinch.DelegateReference">
            <summary>
            Represents a reference to a <see cref="T:System.Delegate"/> that may contain a
            <see cref="T:System.WeakReference"/> to the target. This class is used
            internally by the Composite Application Library.
            </summary>
        </member>
        <member name="M:Cinch.DelegateReference.#ctor(System.Delegate,System.Boolean)">
            <summary>
            Initializes a new instance of <see cref="T:Cinch.DelegateReference"/>.
            </summary>
            <param name="delegate">The original <see cref="T:System.Delegate"/> to create a reference for.</param>
            <param name="keepReferenceAlive">If <see langword="false"/> the class will create a weak reference to the delegate, allowing it to be garbage collected. Otherwise it will keep a strong reference to the target.</param>
            <exception cref="T:System.ArgumentNullException">If the passed <paramref name="delegate"/> is not assignable to <see cref="T:System.Delegate"/>.</exception>
        </member>
        <member name="P:Cinch.DelegateReference.Target">
            <summary>
            Gets the <see cref="T:System.Delegate"/> (the target) referenced by the current <see cref="T:Cinch.DelegateReference"/> object.
            </summary>
            <value><see langword="null"/> if the object referenced by the current <see cref="T:Cinch.DelegateReference"/> object has been garbage collected; otherwise, a reference to the <see cref="T:System.Delegate"/> referenced by the current <see cref="T:Cinch.DelegateReference"/> object.</value>
        </member>
        <member name="T:Cinch.Rule">
            <summary>
            An abstract class that contains information about a rule as well as a method to validate it.
            </summary>
            <remarks>
            This class is primarily designed to be used on a domain object to validate a business rule. In most cases, you will want to use the 
            concrete class SimpleRule, which just needs you to supply a delegate used for validation. For custom, complex business rules, you can 
            extend this class and provide your own method to validate the rule.
            </remarks>
        </member>
        <member name="M:Cinch.Rule.#ctor(System.String,System.String)">
            <summary>
            Constructor.
            </summary>
            <param name="propertyName">The name of the property the rule is based on. This may be blank if the rule is not for any specific property.</param>
            <param name="brokenDescription">A description of the rule that will be shown if the rule is broken.</param>
        </member>
        <member name="M:Cinch.Rule.ValidateRule(System.Object)">
            <summary>
            Validates that the rule has been followed.
            </summary>
        </member>
        <member name="M:Cinch.Rule.ToString">
            <summary>
            Gets a string representation of this rule.
            </summary>
            <returns>A string containing the description of the rule.</returns>
        </member>
        <member name="M:Cinch.Rule.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. System.Object.GetHashCode()
            is suitable for use in hashing algorithms and data structures like a hash
            table.
            </summary>
            <returns>A hash code for the current rule.</returns>
        </member>
        <member name="P:Cinch.Rule.Description">
            <summary>
            Gets descriptive text about this broken rule.
            </summary>
        </member>
        <member name="P:Cinch.Rule.PropertyName">
            <summary>
            Gets the name of the property the rule belongs to.
            </summary>
        </member>
        <member name="M:Cinch.GenericRule`1.ValidateRule(System.Object)">
            <summary>
            Validates that the rule has not been broken.
            </summary>
            <param name="domainObject">The domain object being validated.</param>
            <returns>True if the rule has not been broken, or false if it has.</returns>
        </member>
        <member name="P:Cinch.GenericRule`1.RuleDelegate">
            <summary>
            Gets or sets the delegate used to validate this rule.
            </summary>
        </member>
        <member name="T:Cinch.RegexRule">
            <summary>
            A class to define a RegEx rule, using a delegate for validation.
            </summary>
        </member>
        <member name="M:Cinch.RegexRule.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor.
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.SimpleRule" -->
        <member name="M:Cinch.SimpleRule.#ctor(System.String,System.String,System.Func{System.Object,System.Boolean})">
            <summary>
            Constructor.
            </summary>
            <param name="propertyName">The name of the property this rule validates for. This may be blank.</param>
            <param name="brokenDescription">A description message to show if the rule has been broken.</param>
            <param name="ruleDelegate">A delegate that takes an Object parameter and returns a boolean value, used to validate the rule.</param>
        </member>
        <member name="M:Cinch.SimpleRule.ValidateRule(System.Object)">
            <summary>
            Validates that the rule has not been broken.
            </summary>
            <param name="domainObject">The domain object being validated.</param>
            <returns>True if the rule has not been broken, or false if it has.</returns>
        </member>
        <member name="P:Cinch.SimpleRule.RuleDelegate">
            <summary>
            Gets or sets the delegate used to validate this rule.
            </summary>
        </member>
        <member name="T:Cinch.EditableValidatingViewModelBase">
            <summary>
            Provides a IDataErrorInfo validating object that is also
            editable by implementing the IEditableObject interface
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "T:Cinch.ValidatingViewModelBase" -->
        <member name="T:Cinch.ViewModelBase">
            <summary>
            This is a common partial section of a ViewModelBase class that is used by WPF/SL
            </summary>
            <summary>
            This is a WPF specific partial section of a ViewModelBase
            </summary>
            <summary>
            This is a WPF specific partial section of a ViewModelBase
            </summary>
        </member>
        <member name="F:Cinch.ViewModelBase.isCloseableArgs">
            <summary>
            Is this ViewModel closeable (for compatibility with Cinch V1)
            </summary>
        </member>
        <member name="F:Cinch.ViewModelBase.displayNameArgs">
            <summary>
            DisplayName for ViewModel (for compatibility with Cinch V1)
            </summary>
        </member>
        <member name="M:Cinch.ViewModelBase.ExecuteCloseActivePopupCommand(System.Object)">
            <summary>
            Raises RaiseCloseRequest event, passing back correct DialogResult
            </summary>
        </member>
        <member name="M:Cinch.ViewModelBase.ExecuteCloseWorkSpaceCommand">
            <summary>
            Executes the CloseWorkSpace Command
            </summary>
        </member>
        <member name="M:Cinch.ViewModelBase.VerifyPropertyName(System.String)">
            <summary>
            Warns the developer if this object does not have
            a public property with the specified name. This 
            method does not exist in a Release build.
            </summary>
        </member>
        <member name="M:Cinch.ViewModelBase.NotifyPropertyChanged(System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Notify using pre-made PropertyChangedEventArgs
            </summary>
            <param name="args"></param>
        </member>
        <member name="M:Cinch.ViewModelBase.NotifyPropertyChanged(System.String)">
            <summary>
            Notify using String property name
            </summary>
        </member>
        <member name="M:Cinch.ViewModelBase.GetINPCSubscribers">
            <summary>
            Returns the list of delegates that are currently subscribed for the
            <see cref="T:System.ComponentModel.INotifyPropertyChanged">INotifyPropertyChanged</see>
            PropertyChanged event
            </summary>
        </member>
        <member name="M:Cinch.ViewModelBase.Dispose">
            <summary>
            This provides a hook for user code to call ICinchDisposable.Dispose()
            to clean up the ViewModelBase and also allows the virtual void OnDispose()
            method to be called, which will run any specific clean up code the user
            may have added in an override of the virtual void OnDispose() method
            </summary>
        </member>
        <member name="M:Cinch.ViewModelBase.OnDispose">
            <summary>
            Child classes can override this method to perform 
            clean-up logic, such as removing event handlers.
            </summary>
        </member>
        <member name="M:Cinch.ViewModelBase.Finalize">
            <summary>
            Useful for ensuring that ViewModel objects are properly garbage collected.
            </summary>
        </member>
        <member name="F:Cinch.ViewModelBase.views">
            <summary>
            Collection of workspaces that this ViewModel manages
            </summary>
        </member>
        <member name="M:Cinch.ViewModelBase.RaiseFocusEvent(System.String)">
            <summary>
            Raises the Focus Requested event
            </summary>
            <param name="focusProperty"></param>
        </member>
        <member name="M:Cinch.ViewModelBase.RaiseCloseRequest(System.Nullable{System.Boolean})">
            <summary>
            This raises the CloseRequest event to close the UI.
            </summary>
        </member>
        <member name="M:Cinch.ViewModelBase.RaiseActivateRequest">
            <summary>
            This raises the ActivateRequest event to activate the UI.
            </summary>
        </member>
        <member name="P:Cinch.ViewModelBase.CloseActivePopUpCommand">
            <summary>
            CloseActivePopUpCommand : Close popup command
            </summary>
        </member>
        <member name="P:Cinch.ViewModelBase.CloseWorkSpaceCommand">
            <summary>
            CloseActiveWorkspace (CinchV1 compatibility only)
            </summary>
        </member>
        <member name="E:Cinch.ViewModelBase.CloseWorkSpace">
            <summary>
            Raised when this workspace should be removed from the UI.
            </summary>
        </member>
        <member name="P:Cinch.ViewModelBase.ThrowOnInvalidPropertyName">
            <summary>
            Returns whether an exception is thrown, or if a Debug.Fail() is used
            when an invalid property name is passed to the VerifyPropertyName method.
            The default value is false, but subclasses used by unit tests might 
            override this property's getter to return true.
            </summary>
        </member>
        <member name="E:Cinch.ViewModelBase.ActivateRequest">
            <summary>
            This event should be raised to activate the UI.  Any view tied to this
            ViewModel should register a handler on this event and close itself when
            this event is raised.  If the view is not bound to the lifetime of the
            ViewModel then this event can be ignored.
            </summary>
        </member>
        <member name="E:Cinch.ViewModelBase.CloseRequest">
            <summary>
            This event should be raised to close the view.  Any view tied to this
            ViewModel should register a handler on this event and close itself when
            this event is raised.  If the view is not bound to the lifetime of the
            ViewModel then this event can be ignored.
            </summary>
        </member>
        <member name="M:Cinch.ValidatingViewModelBase.GetBrokenRules">
            <summary>
            Validates all rules on this domain object, returning a list of the broken rules.
            </summary>
            <returns>A read-only collection of rules that have been broken.</returns>
        </member>
        <member name="M:Cinch.ValidatingViewModelBase.GetBrokenRules(System.String)">
            <summary>
            Validates all rules on this domain object for a given property, 
            returning a list of the broken rules.
            </summary>
            <param name="property">The name of the property to check for. 
            If null or empty, all rules will be checked.</param>
            <returns>A read-only collection of rules that have been broken.</returns>
        </member>
        <member name="M:Cinch.ValidatingViewModelBase.AddRule(Cinch.Rule)">
            <summary>
            Adds a new rule to the list of rules
            </summary>
            <param name="newRule">The new rule</param>
        </member>
        <member name="M:Cinch.ValidatingViewModelBase.NotifyChanged(System.String[])">
            <summary>
            A helper method that raises the PropertyChanged event for a property.
            </summary>
            <param name="propertyNames">The names of the properties that changed.</param>
        </member>
        <member name="M:Cinch.ValidatingViewModelBase.CleanString(System.String)">
            <summary>
            Cleans a string by ensuring it isn't null and trimming it.
            </summary>
            <param name="s">The string to clean.</param>
        </member>
        <member name="P:Cinch.ValidatingViewModelBase.IsValid">
            <summary>
            Gets a value indicating whether or not this domain object is valid. 
            </summary>
        </member>
        <member name="P:Cinch.ValidatingViewModelBase.Error">
            <summary>
            Gets an error message indicating what is wrong with this domain object. 
            The default is an empty string ("").
            </summary>
        </member>
        <member name="P:Cinch.ValidatingViewModelBase.Item(System.String)">
            <summary>
            Gets the error message for the property with the given name.
            </summary>
            <param name="propertyName">The name of the property whose error 
            message to get.</param>
            <returns>The error message for the property. 
            The default is an empty string ("").</returns>
        </member>
        <member name="F:Cinch.EditableValidatingViewModelBase._savedState">
            <summary>
            This stores the current "copy" of the object. 
            If it is non-null, then we are in the middle of an 
            editable operation.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingViewModelBase.BeginEdit">
            <summary>
            Begins an edit on an object.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingViewModelBase.OnBeginEdit">
            <summary>
            Interception point for derived logic to do work when beginning edit.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingViewModelBase.CancelEdit">
            <summary>
            Discards changes since the last 
            <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> call.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingViewModelBase.OnCancelEdit">
            <summary>
            This is called in response CancelEdit and provides an interception point.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingViewModelBase.EndEdit">
            <summary>
            Pushes changes since the last 
            <see cref="M:System.ComponentModel.IEditableObject.BeginEdit"/> 
            or <see cref="M:System.ComponentModel.IBindingList.AddNew"/> 
            call into the underlying object.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingViewModelBase.OnEndEdit">
            <summary>
            This is called in response EndEdit and provides an interception point.
            </summary>
        </member>
        <member name="M:Cinch.EditableValidatingViewModelBase.GetFieldValues">
            <summary>
            This is used to clone the object.  
            Override the method to provide a more efficient clone.  
            The default implementation simply reflects across 
            the object copying every field.
            </summary>
            <returns>Clone of current object</returns>
        </member>
        <member name="M:Cinch.EditableValidatingViewModelBase.RestoreFieldValues(System.Collections.Generic.Dictionary{System.String,System.Object})">
            <summary>
            This restores the state of the current object from the passed clone object.
            </summary>
            <param name="fieldValues">Object to restore state from</param>
        </member>
        <member name="T:Cinch.ViewMode">
            <summary>
            Used by the ViewModel to set the state of all
            the data of a particular views data to the correct state
            Basically what happens is that the ViewModel loops through 
            a source object (UI Model class is expected really) and attempts
            to set all Cinch.DataWrapper fields to have the correct 
            Cinch.DataWrapper.IsEditable 
            to the correct state based on the current ViewMode 
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "P:Cinch.MockView.ViewDataSet" -->
        <member name="T:Cinch.NavProps">
            <summary>
            Attached properties for managing WorkSpaces
            </summary>
        </member>
        <member name="F:Cinch.NavProps.ShouldHideHostWhenNoItemsProperty">
            <summary>
            ShouldHideHostWhenNoItems Attached Dependency Property
            </summary>
        </member>
        <member name="M:Cinch.NavProps.GetShouldHideHostWhenNoItems(System.Windows.DependencyObject)">
            <summary>
            Gets the ShouldHideHostWhenNoItems property.  
            </summary>
        </member>
        <member name="M:Cinch.NavProps.SetShouldHideHostWhenNoItems(System.Windows.DependencyObject,System.Boolean)">
            <summary>
            Sets the ShouldHideHostWhenNoItems property.  
            </summary>
        </member>
        <member name="F:Cinch.NavProps.ViewCreatorProperty">
            <summary>
            ViewCreator Attached Dependency Property
            </summary>
        </member>
        <member name="M:Cinch.NavProps.GetViewCreator(System.Windows.DependencyObject)">
            <summary>
            Gets the ViewCreator property.  
            </summary>
        </member>
        <member name="M:Cinch.NavProps.SetViewCreator(System.Windows.DependencyObject,Cinch.WorkspaceData)">
            <summary>
            Sets the ViewCreator property.  
            </summary>
        </member>
        <member name="M:Cinch.NavProps.OnViewCreatorChanged(System.Windows.DependencyObject,System.Windows.DependencyPropertyChangedEventArgs)">
            <summary>
            Handles changes to the ViewCreator property.
            </summary>
        </member>
        <member name="T:Cinch.WorkspaceData">
            <summary>
            Workspace data class which can be used within a DataTemplate along
            with the NavProps DP to manage workspaces
            </summary>
        </member>
        <member name="M:Cinch.WorkspaceData.ExecuteCloseWorkSpaceCommand(System.Object)">
            <summary>
            Executes the CloseWorkSpace Command
            </summary>
        </member>
        <member name="F:Cinch.WorkspaceData.isCloseableArgs">
            <summary>
            Is this workspace a closeable workspace
            </summary>
        </member>
        <member name="F:Cinch.WorkspaceData.imagePathArgs">
            <summary>
            ImagePath
            </summary>
        </member>
        <member name="F:Cinch.WorkspaceData.viewLookupKeyArgs">
            <summary>
            View key lookup name
            </summary>
        </member>
        <member name="F:Cinch.WorkspaceData.dataValueArgs">
            <summary>
            Workspace context data
            </summary>
        </member>
        <member name="F:Cinch.WorkspaceData.displayTextArgs">
            <summary>
            Workspace display text, is used for Headers controls such as TabControl
            </summary>
        </member>
        <member name="M:Cinch.WorkspaceData.NotifyPropertyChanged(System.ComponentModel.PropertyChangedEventArgs)">
            <summary>
            Notify using pre-made PropertyChangedEventArgs
            </summary>
            <param name="args"></param>
        </member>
        <member name="M:Cinch.WorkspaceData.NotifyPropertyChanged(System.String)">
            <summary>
            Notify using String property name
            </summary>
        </member>
        <member name="M:Cinch.WorkspaceData.Dispose">
            <summary>
            Invoked when this object is being removed from the application
            and will be subject to garbage collection.
            </summary>
        </member>
        <member name="M:Cinch.WorkspaceData.OnDispose">
            <summary>
            Child classes can override this method to perform 
            clean-up logic, such as removing event handlers.
            </summary>
        </member>
        <member name="M:Cinch.WorkspaceData.Finalize">
            <summary>
            Useful for ensuring that ViewModel objects are properly garbage collected.
            </summary>
        </member>
        <member name="P:Cinch.WorkspaceData.ViewModelInstance">
            <summary>
            The ViewModel that was created for this WorkSpaceData object, if it was used to create a View
            </summary>
        </member>
        <member name="P:Cinch.WorkspaceData.CloseWorkSpaceCommand">
            <summary>
            CloseActivePopUpCommand : Close popup command
            </summary>
        </member>
        <member name="P:Cinch.WorkspaceData.HasImage">
            <summary>
            True if this workspace has an image
            </summary>
        </member>
    </members>
</doc>
